package dados;

import negocios.Unidade;
import javax.swing.JOptionPane;
import java.sql.SQLException;

public class BancoUnidades implements IBancoUnidades {

	private static BancoUnidades bancoUnidades = null;

    private BancoUnidades() {

        // Contrutor privado, padrao singleton.

    }

   public static BancoUnidades getInstance() {

        if (bancoUnidades == null) {

            bancoUnidades = new BancoUnidades();

        }

        return bancoUnidades;

    }

	@Override public Unidade consultarUnidade(Unidade familia) {

        try {

            ConectaBDUnidades conexao = new ConectaBDUnidades();

            return conexao.consultarUnidade(familia);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

		return null;
	}

	@Override public void editarUnidade(Unidade familia) {

        try {

            ConectaBDUnidades conexao = new ConectaBDUnidades();

            conexao.editarUnidade(familia);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da edição", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

	}

	@Override
	public void excluirUnidade(Unidade familia) {

        try {

            ConectaBDUnidades conexao = new ConectaBDUnidades();

            conexao.excluirUnidade(familia);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da remoção", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

    }

	@Override
	public void inserirUnidade(Unidade familia) {

        try {

            ConectaBDUnidades conexao = new ConectaBDUnidades();

            conexao.inserirUnidade(familia);

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

	}

	@Override
	public Object[] listarUnidades() {

        try {

            ConectaBDUnidades conexao = new ConectaBDUnidades();

            return conexao.listarUnidades();

        } catch(SQLException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro na execução da consulta", JOptionPane.ERROR_MESSAGE);

        } catch(ClassNotFoundException e) {

            JOptionPane.showMessageDialog(null, e.getMessage(), "Erro de classe não encontrada", JOptionPane.ERROR_MESSAGE);

        }

		return null;

	}

}
